package com.cskaoyan.demo7.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.multipart.MultipartResolver;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@EnableWebMvc
@ComponentScan("com.cskaoyan.demo7.controller")
public class WebConfiguration implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/wx/storage/fetch/**")
                .addResourceLocations("file:D:/atmp/");
    }
    // 组件id必须为multipartResolver
    /**
     * 3. multipart/form-data
     *        Servlet: request.getPart() → getInputStream() → 文件上传
     *        SpringMVC: MultipartParameterController
     * SpringMVC提供了一个组件来做文件上传的处理 ：multipartResolver（DispatcherServlet要使用它，是从容器中按照组件名称获取的这个实例）
     *                                    ：这个组件的id(名称)必须为multipartResolver
     * SpringMVC并没有自动帮我们注册：我们需要自己来做注册（也需要使用到依赖commons-io和commons-fileupload）
     * (1) 引入依赖  → 只引入commons-fileupload即可，里面包含了commons-io
     * (2) 注册一个组件id为multipartResolver的组件
     */
    @Bean
    public MultipartResolver multipartResolver() {
        return new CommonsMultipartResolver();
    }
}
